Verifying Parallel Programs with Dynamic Communication Structures
نویسندگان
چکیده
We address the verification problem of networks of communicating pushdown systems modeling communicating parallel programs with procedure calls. Processes in such networks can read the control state of the other processes according to a given communication structure (specifying the observability rights between processes). The reachability problem of such models is undecidable in general. First, we define a class of networks that effectively preserves recognizability (hence, its reachability problem is decidable). Then, we consider networks where the communication structure can change dynamically during the execution according to a phase graph. The reachability problem for these dynamic networks being undecidable in general, we define a subclass for which it becomes decidable. Then, we consider reachability when the switches in the communication structures are bounded. We show that this problem is undecidable even for one switch.We define a natural class ofmodels forwhich this problem is decidable. This class can be used in the definition of an efficient semi-decision procedure for the analysis of the general model of dynamic networks. Our techniques allowed to find bugs in two versions of a Windows NT Bluetooth driver. © 2010 Elsevier B.V. All rights reserved.
منابع مشابه
Runtime Support for Dynamic Skeletons Implementation
Algorithmic skeletons have proved to be a good solution to the problem of implementing parallel applications with specify communication structures. They define the overall structure of the computation, hiding the complex communication details. Nowadays, the different frameworks available offer a fixed set of skeletons. The programmer can implement efficient programs if the computation and commu...
متن کاملSingleTrack: A Dynamic Determinism Checker for Multithreaded Programs
Multithreaded programs are prone to errors caused by unintended interference between concurrent threads. This paper focuses on verifying that deterministically-parallel code is free of such thread interference errors. Deterministically-parallel code may create and use new threads, via fork and join, and coordinate their behavior with synchronization primitives, such as barriers and semaphores. ...
متن کاملLTL Model Checking for Systems with Unbounded Number of Dynamically Created Threads and Objects
One of the stumbling blocks to applying model checking to a concurrent language such as Java is that a program’s data structures (as well as the number of threads) can grow and shrink dynamically, with no fixed upper bound on their size or number. This paper presents a method for verifying LTL properties of programs written in such a language. It uses a powerful abstraction mechanism based on 3...
متن کاملA method for determining testing scenarios for parallel and distributed software
In the paper we present a method for determining testing scenarios for parallel and distributed software. It is based on simulation of software behavior and combines static and dynamic analysis to provide a convenient framework for structural program testing. The underlying testing model consists of parallel program control ow structures including data processing nodes, decision nodes, communic...
متن کاملSpmd Execution of Programs with Pointer-based Dynamic Data Structures
This paper discusses an approach for supporting SPMD (single-program, multiple-data) execution of programs with pointer-based data structures on distributed-memory machines. Through a combination of language design and new compilation techniques, static and dynamic implicit parallelism present in sequential programs based upon pointer-based data structures is exploited. Language support is prov...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
- Theor. Comput. Sci.
دوره 411 شماره
صفحات -
تاریخ انتشار 2009